#include <stdio.h>
#include <stdlib.h>

// 编译系统只检查调用函数的类型是否与声明的一致，
// 所以声明时不需要给出参数的变量名称。
double max(double, double);

void main()
{
    double a = 5.8, b = 8.5;
    printf("&a=%#p, &b=%#p\n", &a, &b);
    printf("max=%f\n", max(a, b));

    system("pause");
}

double max(double m, double n)
{
    printf("&m=%#p, &n=%#p\n", &m, &n);
    if (m > n)
        return m;
    else
        return n;
}
/*
函数，就是模块的基本单位，是对所处理问题的一种抽象。

在函数被调用时，系统给形参m和n分配内存单元，要将实参赋给形参变量。
这种参数替换过程叫作函数参数传递。

注意实参和形参具有不同的地址。
*/